#!/bin/bash

# Block processes by name in conjunction with a launch daemon
# To block Install macOS apps supply osinstallersetupd as a launch enviroment in the Fileset
# See below case statement to create granual control of which versions of Install macOS may run
# Example in this file blocks Catalina only.  Amend as desired
# 2019.10.24 - sean.holden@filewave.com

echo 1

if [ $# -eq 0 ]
then
	echo "No Launch Arguments supplied.  Please edit fileset executables"
	exit 0
fi

echo 2

if [ -e /Library/LaunchDaemons/com.filewave.block_applications.plist ]
then
	launchctl unload -w /Library/LaunchDaemons/com.filewave.block_applications.plist
	if [ -e /usr/local/etc/block_applications.sh ]
	then
		rm /usr/local/etc/block_applications.sh
	fi
	# echo "#" > /usr/local/etc/block_applications.sh
fi

echo 3

cp /usr/local/etc/block_applications_template.sh /usr/local/etc/block_applications.sh

echo 4

while [ $# -gt 0 ]
do
	if [[ "$1" == "osinstallersetupd" ]]
	then
		cat >> /usr/local/etc/block_applications.sh<<EOF

process_id=\$(pgrep -x osinstallersetupd)

if [[ "\$process_id" != "" ]]
then
	process_details=\$(ps -o comm= -p \$process_id)
	# Apple have an automated respawn if the app is killed too quickly.  Sleep briefly.
	sleep 5

	case \$process_details in

		*"Ventura"*)
			log_me "Found: \$process_details"
			log_me "Nothning to do"
			;;
		*)
			block_me "osinstallersetupd"
			;;
	esac
fi
EOF
echo 5
	else
		cat >> /usr/local/etc/block_applications.sh<<EOF

block_me  "$1"
EOF
fi
	shift
done

echo 6

cat >> /usr/local/etc/block_applications.sh<<EOF

exit 0
EOF

echo 7

chmod 700 /usr/local/etc/block_applications.sh

launchctl load -w /Library/LaunchDaemons/com.filewave.block_applications.plist


exit 0